home *** CD-ROM | disk | FTP | other *** search
/ The Best of MacTutor - S…e Code for Volumes 1 to 5 / The Best of MacTutor - Source Code for Volume 1-5 (Wayzata Technology)(6031)(1990).bin / Source Code / #18 (Mar 87) / Basic Graf3D / CLR Circle Demo next >
Text File  |  1987-02-09  |  2KB  |  71 lines

  1. ' 2D Circle Demo
  2. ' ©MacTutor March 1987
  3. ' By Dave Kelly
  4. ' CLR Graph3DLib version
  5. ' Requires CLR Graph3DLib
  6.  
  7. ' Set your own volume names
  8. LIBRARY "XP™ 40-6:Software Dev:MS Basic:CLR Graph3D:Graph3DLib"
  9. LIBRARY "XP™ 40-6:Software Dev:MS Basic:CLR Graph3D:ToolBox"
  10. initialize:
  11. WINDOW 1,"",(122,22)-(424,324),3
  12. OpenPort3D  'Set 3D output to window 1
  13. ' Next initialize variables to be used in library calls.
  14. x1!=0:x2!=0:y1!=0:y2!=0
  15. s!=0:t!=0:u!=0:v!=0
  16. xAngle!=0:yAngle!=0:zAngle!=0:Angle!=0
  17. SetRect viewrect1%(1),2,2,300,300  'set the viewport rectangle
  18. ' convert single precision to fixed point values
  19. Fs2Fix 0!,x1!
  20. Fs2Fix 0!,y1!
  21. Fs2Fix 1!,x2!
  22. Fs2Fix 1!,y2!
  23. Fs2Fix 0!,xAngle!
  24. Fs2Fix 0!,yAngle!
  25. Fs2Fix 0!,zAngle!
  26. Fs2Fix 25!,Angle!
  27. viewport viewrect1%(1)
  28. ' frame rect. so we can see it.
  29. FRAMERECT (VARPTR(viewrect1%(1)))
  30. LookAt x1!,y1!,x2!,y2!
  31. ViewAngle Angle!
  32. roll zAngle!
  33. yaw yAngle!
  34. Pitch xAngle!
  35.  
  36. MainRoutine:
  37.     DIM x!(360),y!(360)
  38.     pi!=3.141593
  39.     DEF FNrad(deg)=pi!*deg/180
  40.     LOCATE 2,2:TEXTSIZE 9:INPUT "Enter step value: <18> ";Stp
  41.     IF Stp=0 THEN Stp=18
  42.     CLS
  43.     PENMODE(8)
  44.     LOCATE 2,2: PRINT"Step =";Stp
  45.     FOR n=1 TO 360
  46.         Angle=FNrad(n)
  47.         x!(n)=(SIN(Angle)+1)/2
  48.         y!(n)=(COS(Angle)+1)/2
  49.     NEXT n
  50.     FOR n=1 TO 360 STEP Stp
  51.         m=n+1
  52.         WHILE m<>n
  53.             Fs2Fix x!(n),s
  54.             Fs2Fix y!(n),t
  55.             Fs2Fix x!(m),u
  56.             Fs2Fix y!(m),v
  57.             MoveTo2D s,t
  58.             lineTo2d u,v
  59.             m=m+Stp
  60.             IF m>360 THEN m=1
  61.         WEND
  62.     NEXT n
  63. LOCATE 25,2:PRINT "Press any key";
  64. key$=""
  65. WHILE key$=""
  66.     key$=INKEY$
  67. WEND
  68. WINDOW CLOSE 1
  69. END
  70.  
  71.